/*
 *    Copyright 2010 The maven-gcu-plugin Team
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */
package com.googlecode.gcu;

import java.io.File;
import java.util.Arrays;

/**
 * The model that represents the file has to be uploaded, decorated by the
 * summary and the labels.
 *
 * @version $Id: Upload.java 51 2010-08-29 09:45:51Z simone.tripodi $
 */
public class Upload {

    /**
     * The file has to be uploaded.
     */
    private File file;

    /**
     * The uploaded file labels.
     */
    private String[] labels;

    /**
     * The uploaded file summary.
     */
    private String summary;

    /**
     * Return the file has to be uploaded.
     *
     * @return the file has to be uploaded.
     */
    public File getFile() {
        return this.file;
    }

    /**
     * Set the file has to be uploaded.
     *
     * @param file the file has to be uploaded.
     */
    public void setFile(File file) {
        this.file = file;
    }

    /**
     * Return the uploaded file labels.
     *
     * @return the uploaded file labels.
     */
    public String[] getLabels() {
        return labels;
    }

    /**
     * Set the uploaded file labels.
     *
     * @param labels the uploaded file labels.
     */
    public void setLabels(String[] labels) {
        this.labels = labels;
    }

    /**
     * Return the uploaded file summary.
     *
     * @return the uploaded file summary.
     */
    public String getSummary() {
        return summary;
    }

    /**
     * Set the uploaded file summary.
     *
     * @param summary the uploaded file summary.
     */
    public void setSummary(String summary) {
        this.summary = summary;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return "(file="
                + this.file
                + ", labels="
                + Arrays.toString(this.labels)
                + ", summary="
                + this.summary
                + ")";
    }

}
